package com.wudl.govern.mapper;

import com.wudl.govern.domain.ReportDetail;
import com.wudl.govern.vo.ProblemDataVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * @author ：wudl
 * @date ：Created in 2022-04-05 19:24
 * @description：
 * @modified By：
 * @version: 1.0
 */

@Mapper
@Repository
public interface ReportDetailMapper {
    int deleteByPrimaryKey(Integer id);

    int insert(ReportDetail record);

    int insertSelective(ReportDetail record);

    ReportDetail selectByPrimaryKey(Integer id);

    int updateByPrimaryKeySelective(ReportDetail record);

    int updateByPrimaryKey(ReportDetail record);

    /**
     * 查质量报告详情
     *
     * @param logId
     * @return
     */
    List<Map<String,Object>> selectAllReportById(@Param("logId") Integer logId);

    /**
     * 删除报告详情
     * @param reportId
     * @return
     */
    int deleteReportDetailById(@Param("reportId") Integer reportId);

    /**
     * 通过任务id查询规则()
     * @param quartzLogId
     * @return
     */
    List<Map<String, Object>> selectByLogId(@Param("quartzLogId") Integer quartzLogId);

    /**
     * 按executeId逻辑删除一条质量监控报告
     * @param logId
     * @return
     */
    int deleteOne(@Param("logId") Integer logId);

    List<ProblemDataVO> selectProblemData();

    /**
     * 首页-一周数据质量排名
     */
    List<ReportDetail> selectProblemDataHomeDepartment();

    /**
     * 首页-一周数据质量排名
     */
    Integer selectNavigation();

    /**
     * 首页-问题异常单处理情况-查询一个库的全部问题单总数
     */
    Integer selectAnomalousSingleCase(String department);

    /**
     * 首页-问题异常单处理情况-查询部门
     */
    List<ReportDetail> selectDepartment();

    List<String> selectindexDepartment();

    List<String> selectindexJob(@Param("department") String department);

    List<String> selectindexNumbers();
    /***
     * 批量添加报告详细信息
     * @param ReportDetails
     * @param createDate
     * @return
     */
    int batchAddReportDetail(@Param("ReportDetails") List<ReportDetail> ReportDetails, @Param("createDate") Date createDate, @Param("reportId") String reportId, @Param("sunScore") String sunScore);

    List<Map<String,Object>> selectInLogIds(@Param("logIds")List<Integer> logIds);

    /***
     * 数据概览统计
     * @param deptId               部门id
     * @param createDates          时间集合（包括年，月，日）
     * @param dataType             时间格式
     * @return
     */
    List<Map<String,Object>> selectQualityOverview(@Param("deptId") String deptId,@Param("createDates") List createDates,
                                                   @Param("dataType") String dataType);



    /**
     * 查询规则中的所有部门id集合
     * @return
     */
    List<Map<String,Object>> selectDeptIdList();
}